<?php
include_once "TipoParticipante.php";
include_once "Transaccion.php";

class Participante
{
	public $Id;
	public $IdUsuario;
	public $IdTipoParticipante;
	public $Activo;
	public $FechaRegistro;
	public $EsAceptado;
	public $FechaAceptacion;
	public $UsuarioAceptacion;
	public $MontoAPagar;

	//Es la transaccion con estado de pagado
	public $Transaccion;
	
	//Almacena el estado de la calificacion de un revisor en particular
	public $TipoParticipante;
	
	public function __construct(){}
	
	static public function Obtener($idUsuario){
		global $dbh;
		$dbh->query("SET NAMES 'utf8'");
		
		$sql = 'select
					id,
					idusuario,
					idtipoparticipante,
					activo,
					fecharegistro,
					esaceptado,
					fechaaceptacion,
					usuarioaceptacion,
					montoapagar		
					
					from participante
				where idusuario	= \''.$idUsuario.'\'
				and activo = 1
				';				
						
		$obj = new Participante();
		foreach($dbh->query($sql) as $row) {
				$obj->Id = $row['id'];
				$obj->IdUsuario = $row['idusuario'];
				$obj->IdTipoParticipante = $row['idtipoparticipante'];
				$obj->Activo = $row['activo'];
				$obj->EsAceptado = $row['esaceptado'];
				$obj->FechaRegistro = $row['fecharegistro'];
				$obj->FechaAceptacion = $row['fechaaceptacion'];
				$obj->UsuarioAceptacion = $row['usuarioaceptacion'];
				$obj->MontoAPagar = $row['montoapagar'];
				
				$obj->Transaccion = Transaccion::ObtenerTransaccionExitosa($obj->IdUsuario);

				$obj->TipoParticipante = TipoParticipante::Obtener($row["idtipoparticipante"]);
		}

		return $obj;
	}
	
	public function Insertar(){
		global $dbh;
		
		$sql = '';
		if($this->Id && $this->IdUsuario){
			//contrasena = \''.$this->Contrasena.'\',
			$sql = '
				update
					participante
				set					
					id = \''.$this->Id.'\',
					idusuario = \''.$this->IdUsuario.'\',
					IdTipoParticipante = \''.$this->IdTipoParticipante.'\',
					Activo = \''.$this->Activo.'\',
					FechaRegistro = \''.$this->FechaRegistro.'\',
					EsAceptado = \''.$this->EsAceptado.'\',
					FechaAceptacion = \''.$this->FechaAceptacion.'\',
					
					UsuarioAceptacion = \''.$this->UsuarioAceptacion.'\',
					MontoAPagar = \''.$this->MontoAPagar.'\'
					
				where 
					id = \''.$this->Id.'\' and
					idusuario = \''.$this->IdUsuario.'\'';	
					
				$temp_q_id = $dbh->prepare($sql);
				$temp_q_id->execute();
		}else{		
		
			//
			$sql = "select idusuario from participante where idusuario = '".$this->IdUsuario."' and idtipoparticipante = '".$this->IdTipoParticipante."'";
			$existe = false;
			$idUsuario = 0 ;
			foreach($dbh->query($sql) as $row) {
				$existe = true;
				$idUsuario = $row["idusuario"];
			}
			
			if($existe){				
				$this->Obtener($idUsuario);
			}else{		
				$sql = 'Insert into participante 
					(
					`id`,
					`idusuario`,
					`idtipoparticipante`,
					`activo`,
					`fecharegistro`,
					`esaceptado`,
					`fechaaceptacion`,
					`usuarioaceptacion`,
					`montoapagar`					
					)
					Value
					(NULL,		
					\''.$this->IdUsuario.'\',
					\''.$this->IdTipoParticipante.'\',
					\''.$this->Activo.'\',
					\''.$this->FechaRegistro.'\',
					\''.$this->EsAceptado.'\',
					\''.$this->FechaAceptacion.'\',
					\''.$this->UsuarioAceptacion.'\',
					\''.$this->MontoAPagar.'\'
					)';	
					$temp_q_id = $dbh->prepare($sql);
					$temp_q_id->execute();
							
					$this->IdUsuario = $dbh->lastInsertId();
			}				
		}		

		//echo $sql;
	}
	

	public function Eliminar(){
		global $dbh;
		
		$sql = "Delete from usuario where idusuario = ".$this->IdUsuario;
		$temp_q_id = $dbh->prepare($sql);
		if (!$temp_q_id) {
			echo "\nPDO::errorInfo():\n";				
		}
		$temp_q_id->execute();		
	}
	
	
}

?>